Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
transfer-to-window
Advanced tools
将指定窗口大小的数据转化输出到另一窗口,并可缩放平移操作新窗口
npm install transfer-to-window
new TransferToWindow(
param: {
// 输入宽
inw: number,
// 输入高
inh: number,
// 输出宽
outw: number,
// 输出高
outh: number,
// 输入窗口转化到输出窗口后最小的宽高尺寸;默认值:1
minWH?: number,
// 输入窗口转化到输出窗口后最大的宽高尺寸;默认值:Infinity
minWH?: number,
// 是否限制数据始终有区域位于窗口内部
limitInWindow?: boolean,
// 显示在窗口内部的最小值
limitSize?: number,
},
// 是否计算输入输出窗口之间的变化矩阵
slient?: boolean
) => TransferToWindow
translate(dx: number, dy: number) => void
zoom(cx: number, cy: number, ratio: number) => void
zoomToByInCoor(cx: number, cy: number, scale: number) => void
resize() => void
scrollToRect(x: number, y: number, width: number, height: number, margin?: number) => void
updateMatrix(scale: number, dx: number, dy: number) => void
inCoorIsIn(x: number, y: number) => boolean
outCoorIsIn(x: number, y: number) => boolean
transInToOut(coors: number[]) => number[]
transOutToIn(coors: number[]) => number[]
以下为在浏览器视窗内显示并缩放平移一个HTMLElement的示例
<div id="transfer-to-window">
<div class="content" style="width: 16384px; height: 16384px;">
<svg width="16384" height="16384" viewBox="0 0 16384 16384" xmlns="http://www.w3.org/2000/svg">
<defs>
<pattern id="grid" patternUnits="userSpaceOnUse" width="512" height="512">
<g stroke-width="10" stroke="#000" stroke-opacity="1" fill="none">
<path d="M0,0L512,512 M0,512L512,0 M256,0L0,256 M512,256L256,512 M0,256L256,512 M256,0L512,256" />
</g>
</pattern>
</defs>
<rect x="0" y="0" width="16384" height="16384" fill="url(#grid)" />
</svg>
</div>
</div>
html,
body,
#transfer-to-window {
width: 100%;
height: 100%;
margin: 0;
overflow: hidden;
}
#transfer-to-window {
position: fixed;
inset: 0;
z-index: 10;
}
#transfer-to-window>.content {
transform-origin: 0 0 0;
}
import { TransferToWindow } from 'transfer-to-window';
window.onload = function () {
const ele = document.getElementById('transfer-to-window');
const transfer2window = new TransferToWindow({
inw: 16384,
inh: 16384,
outw: ele.clientWidth,
outh: ele.clientHeight,
limitInWindow: true,
})
setTransform();
/**
* 获取鼠标相对于el的坐标
*/
function getPosition(e) {
let rect = ele.getBoundingClientRect();
return [e.pageX - rect.left, e.pageY - rect.top];
}
/**
* 设置样式
*/
function setTransform() {
ele.firstElementChild.style.transform = `translate(${transfer2window.dx}px, ${transfer2window.dy}px) scale(${transfer2window.scale})`
}
/**
* 重置
*/
document.addEventListener('keyup', function (e) {
transfer2window.resize();
setTransform();
})
/**
* 缩放
*/
ele.addEventListener('wheel', function (e) {
const coor = getPosition(e);
transfer2window.zoom(coor[0], coor[1], e.deltaY < 0 ? 1.1 : 0.9);
setTransform();
})
/**
* 平移
*/
let pos;
ele.addEventListener('mousedown', function (e) {
pos = getPosition(e);
document.addEventListener('mousemove', mousemove)
document.addEventListener('mouseup', mouseup)
})
function mousemove(e) {
const cur = getPosition(e);
transfer2window.translate(cur[0] - pos[0], cur[1] - pos[1]);
pos = cur;
setTransform();
}
function mouseup() {
document.removeEventListener('mousemove', mousemove)
document.removeEventListener('mouseup', mouseup)
}
}
FAQs
The npm package transfer-to-window receives a total of 2 weekly downloads. As such, transfer-to-window popularity was classified as not popular.
We found that transfer-to-window demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.